ในเอลิกซีร์ การประมวลผลข้อมูลมีแนวทางสองแบบที่แตกต่างกัน: แบบเร่งรีบ (เร่งรีบ) และ แบบรอคอย. การเข้าใจความแตกต่างระหว่างกันนี้มีความสำคัญอย่างยิ่งต่อประสิทธิภาพหน่วยความจำและเสถียรภาพของระบบ
1. โปรโตคอลการวนซ้ำ (Enumerable Protocol)
ทางเทคนิค วัตถุที่สามารถวนซ้ำได้จะถือว่าใช้ โปรโตคอลการวนซ้ำ. ข้อตกลงพื้นฐานนี้ทำให้โครงสร้างข้อมูลที่หลากหลายสามารถทำงานร่วมกับฟังก์ชันเดียวกันได้
2. โมดูลแบบเร่งรีบกับแบบรอคอย
โมดูล Enum มีลักษณะเป็น แบบเร่งรีบ. มันอาจใช้เนื้อหาทั้งหมดของชุดข้อมูลทันที สร้างรายการชั่วคราวทุกขั้นตอนในสายงาน ตรงข้ามกัน โมดูล Stream มีลักษณะเป็น แบบรอคอย. ค่าถัดไปจะถูกคำนวณเมื่อ ต้องการจริงๆ เมื่อจำเป็น
3. คำอธิบายกับผลลัพธ์
ค่า Stream คือคำอธิบายสิ่งที่เราต้องการ แต่ไม่ใช่ผลลัพธ์จริง ซึ่งสตรีมสามารถวนซ้ำและรวมกันได้ ทำให้คุณสามารถเพิ่มการแปลงหลายขั้นตอนโดยไม่ต้องดำเนินการจนกว่าคุณจะส่งสตรีมไปยังจุดปลายทางแบบเร่งรีบ เช่น Enum.to_list/1 .
4. ความบริสุทธิ์ของแนวคิด
การผสมผสานแนวคิด (เชิงฟังก์ชันกับเชิงวัตถุ) จะลดประโยชน์ที่แนวคิดเชิงฟังก์ชันมอบให้ ควรใช้การแปลงแบบอธิบายมากกว่าการวนลูปแบบบังคับ เพื่อให้ผลลัพธ์คาดเดาได้